<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow-IPC: ipc::session::Session_mv&lt; Session_impl_t &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow-IPC<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow-IPC project: Full implementation reference.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceipc.html">ipc</a></li><li class="navelem"><a class="el" href="namespaceipc_1_1session.html">session</a></li><li class="navelem"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="#related">Related Functions</a> &#124;
<a href="classipc_1_1session_1_1Session__mv-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">ipc::session::Session_mv&lt; Session_impl_t &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Implements the <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> concept when it is in PEER state.  
 <a href="classipc_1_1session_1_1Session__mv.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ipc::session::Session_mv&lt; Session_impl_t &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classipc_1_1session_1_1Session__mv__coll__graph.svg" width="523" height="174"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ab92df09d894e6e1aaf3c2733da594fd2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> = typename Impl::Channel_obj</td></tr>
<tr class="memdesc:ab92df09d894e6e1aaf3c2733da594fd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">More...</a><br /></td></tr>
<tr class="separator:ab92df09d894e6e1aaf3c2733da594fd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af87da439644b2afd73d6a13d97e7985f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#af87da439644b2afd73d6a13d97e7985f">Channels</a> = typename Impl::Channels</td></tr>
<tr class="memdesc:af87da439644b2afd73d6a13d97e7985f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Container (<code>vector&lt;&gt;</code>) of <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a>.  <a href="classipc_1_1session_1_1Session__mv.html#af87da439644b2afd73d6a13d97e7985f">More...</a><br /></td></tr>
<tr class="separator:af87da439644b2afd73d6a13d97e7985f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acccbc643f29f002075e66cd134da70bd"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#acccbc643f29f002075e66cd134da70bd">Mdt_payload_obj</a> = typename Impl::Mdt_payload_obj</td></tr>
<tr class="memdesc:acccbc643f29f002075e66cd134da70bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#acccbc643f29f002075e66cd134da70bd">More...</a><br /></td></tr>
<tr class="separator:acccbc643f29f002075e66cd134da70bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af10f452e602e4ea7389c6a77dd9a0f88"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#af10f452e602e4ea7389c6a77dd9a0f88">Mdt_builder</a> = typename Impl::Mdt_builder</td></tr>
<tr class="memdesc:af10f452e602e4ea7389c6a77dd9a0f88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#af10f452e602e4ea7389c6a77dd9a0f88">More...</a><br /></td></tr>
<tr class="separator:af10f452e602e4ea7389c6a77dd9a0f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a787253f02859ea6b99ce3eba92766431"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">Mdt_builder_ptr</a> = typename Impl::Mdt_builder_ptr</td></tr>
<tr class="memdesc:a787253f02859ea6b99ce3eba92766431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">More...</a><br /></td></tr>
<tr class="separator:a787253f02859ea6b99ce3eba92766431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b1215fb0c9738b9fcfbb337d23c43df"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df">Mdt_reader_ptr</a> = typename Impl::Mdt_reader_ptr</td></tr>
<tr class="memdesc:a2b1215fb0c9738b9fcfbb337d23c43df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a2b1215fb0c9738b9fcfbb337d23c43df">More...</a><br /></td></tr>
<tr class="separator:a2b1215fb0c9738b9fcfbb337d23c43df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac205819d4a3a066f31b5af311ff40a2a"><td class="memTemplParams" colspan="2">template&lt;typename Message_body &gt; </td></tr>
<tr class="memitem:ac205819d4a3a066f31b5af311ff40a2a"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a">Structured_channel</a> = typename <a class="el" href="namespaceipc_1_1transport_1_1struc.html#aca041b0efd4a9ae18e10088b2ee3c052">transport::struc::Channel_via_heap</a>&lt; <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a>, Message_body &gt;</td></tr>
<tr class="memdesc:ac205819d4a3a066f31b5af311ff40a2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a">More...</a><br /></td></tr>
<tr class="separator:ac205819d4a3a066f31b5af311ff40a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f6e9a57f6e6ab420d554a2c0eba7877"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a9f6e9a57f6e6ab420d554a2c0eba7877">Structured_msg_builder_config</a> = typename Impl::Structured_msg_builder_config</td></tr>
<tr class="memdesc:a9f6e9a57f6e6ab420d554a2c0eba7877"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a9f6e9a57f6e6ab420d554a2c0eba7877">More...</a><br /></td></tr>
<tr class="separator:a9f6e9a57f6e6ab420d554a2c0eba7877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a335c3585402cc9430f8c909e8c7e55f4"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">Structured_msg_reader_config</a> = typename Impl::Structured_msg_builder_config</td></tr>
<tr class="memdesc:a335c3585402cc9430f8c909e8c7e55f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a335c3585402cc9430f8c909e8c7e55f4">More...</a><br /></td></tr>
<tr class="separator:a335c3585402cc9430f8c909e8c7e55f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af964cb260766684d46503b43d0faa777"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#af964cb260766684d46503b43d0faa777">Session_mv</a> ()</td></tr>
<tr class="memdesc:af964cb260766684d46503b43d0faa777"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#af964cb260766684d46503b43d0faa777">More...</a><br /></td></tr>
<tr class="separator:af964cb260766684d46503b43d0faa777"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1cffabdbc41809399b4bda9330f5367"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ad1cffabdbc41809399b4bda9330f5367">Session_mv</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:ad1cffabdbc41809399b4bda9330f5367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ad1cffabdbc41809399b4bda9330f5367">More...</a><br /></td></tr>
<tr class="separator:ad1cffabdbc41809399b4bda9330f5367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1293a6369b78d12bad869ca812be0f74"><td class="memItemLeft" align="right" valign="top"><a id="a1293a6369b78d12bad869ca812be0f74" name="a1293a6369b78d12bad869ca812be0f74"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Session_mv</b> (const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;)=delete</td></tr>
<tr class="memdesc:a1293a6369b78d12bad869ca812be0f74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy ction is disallowed. <br /></td></tr>
<tr class="separator:a1293a6369b78d12bad869ca812be0f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b4f0cdde3221b0922e0b44cbb6011a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a0b4f0cdde3221b0922e0b44cbb6011a2">~Session_mv</a> ()</td></tr>
<tr class="memdesc:a0b4f0cdde3221b0922e0b44cbb6011a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a0b4f0cdde3221b0922e0b44cbb6011a2">More...</a><br /></td></tr>
<tr class="separator:a0b4f0cdde3221b0922e0b44cbb6011a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac000e14183b5dcb523ff0eaaf030968c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ac000e14183b5dcb523ff0eaaf030968c">operator=</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:ac000e14183b5dcb523ff0eaaf030968c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#ac000e14183b5dcb523ff0eaaf030968c">More...</a><br /></td></tr>
<tr class="separator:ac000e14183b5dcb523ff0eaaf030968c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb7d7965c0fc0736b6c59f5f81a3e8c2"><td class="memItemLeft" align="right" valign="top"><a id="aeb7d7965c0fc0736b6c59f5f81a3e8c2" name="aeb7d7965c0fc0736b6c59f5f81a3e8c2"></a>
<a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> &amp;)=delete</td></tr>
<tr class="memdesc:aeb7d7965c0fc0736b6c59f5f81a3e8c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment is disallowed. <br /></td></tr>
<tr class="separator:aeb7d7965c0fc0736b6c59f5f81a3e8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba79f245e6f726ac6aa573e45e0bfdf3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">Mdt_builder_ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#aba79f245e6f726ac6aa573e45e0bfdf3">mdt_builder</a> ()</td></tr>
<tr class="memdesc:aba79f245e6f726ac6aa573e45e0bfdf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#aba79f245e6f726ac6aa573e45e0bfdf3">More...</a><br /></td></tr>
<tr class="separator:aba79f245e6f726ac6aa573e45e0bfdf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d8cdbb86140056a7e7d2931ea642b18"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a6d8cdbb86140056a7e7d2931ea642b18">open_channel</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> *target_channel, const <a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">Mdt_builder_ptr</a> &amp;mdt, <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *err_code=0)</td></tr>
<tr class="memdesc:a6d8cdbb86140056a7e7d2931ea642b18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a6d8cdbb86140056a7e7d2931ea642b18">More...</a><br /></td></tr>
<tr class="separator:a6d8cdbb86140056a7e7d2931ea642b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84e80e24d7b16da0a9ecf83057acfd8e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a84e80e24d7b16da0a9ecf83057acfd8e">open_channel</a> (<a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> *target_channel, <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *err_code=0)</td></tr>
<tr class="memdesc:a84e80e24d7b16da0a9ecf83057acfd8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a84e80e24d7b16da0a9ecf83057acfd8e">More...</a><br /></td></tr>
<tr class="separator:a84e80e24d7b16da0a9ecf83057acfd8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749f1f679f858d2dce8562cdddc60195"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceipc_1_1session.html#ade2b302f1a3623e8adc9694568d94d2c">Session_token</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a749f1f679f858d2dce8562cdddc60195">session_token</a> () const</td></tr>
<tr class="memdesc:a749f1f679f858d2dce8562cdddc60195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a749f1f679f858d2dce8562cdddc60195">More...</a><br /></td></tr>
<tr class="separator:a749f1f679f858d2dce8562cdddc60195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a107684fdd5d233549c6daac26a81a542"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html">transport::struc::Heap_fixed_builder::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542">heap_fixed_builder_config</a> ()</td></tr>
<tr class="memdesc:a107684fdd5d233549c6daac26a81a542"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most efficient yet safe values, for <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">transport::struc::Msg_out</a> (out-messages) compatible with <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> upgraded-from <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> channels opened via <code>*this</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a>.  <a href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542">More...</a><br /></td></tr>
<tr class="separator:a107684fdd5d233549c6daac26a81a542"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3c69e3f8ccbd70d315bed86d697255d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html">transport::struc::Heap_reader::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ab3c69e3f8ccbd70d315bed86d697255d">heap_reader_config</a> ()</td></tr>
<tr class="memdesc:ab3c69e3f8ccbd70d315bed86d697255d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserializing counterpart to non-<code>static</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a>.  <a href="classipc_1_1session_1_1Session__mv.html#ab3c69e3f8ccbd70d315bed86d697255d">More...</a><br /></td></tr>
<tr class="separator:ab3c69e3f8ccbd70d315bed86d697255d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a142df6d6db09962a1dc0f536bf4977f0"><td class="memItemLeft" align="right" valign="top">flow::log::Logger *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a142df6d6db09962a1dc0f536bf4977f0">get_logger</a> () const</td></tr>
<tr class="memdesc:a142df6d6db09962a1dc0f536bf4977f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns logger (possibly null).  <a href="classipc_1_1session_1_1Session__mv.html#a142df6d6db09962a1dc0f536bf4977f0">More...</a><br /></td></tr>
<tr class="separator:a142df6d6db09962a1dc0f536bf4977f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b43187319871c4974755175973008e"><td class="memItemLeft" align="right" valign="top">const flow::log::Component &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a23b43187319871c4974755175973008e">get_log_component</a> () const</td></tr>
<tr class="memdesc:a23b43187319871c4974755175973008e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns log component.  <a href="classipc_1_1session_1_1Session__mv.html#a23b43187319871c4974755175973008e">More...</a><br /></td></tr>
<tr class="separator:a23b43187319871c4974755175973008e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a26dfe4dd3ff57daab5a36a037f835c4e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html">transport::struc::Heap_fixed_builder::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a26dfe4dd3ff57daab5a36a037f835c4e">heap_fixed_builder_config</a> (flow::log::Logger *logger_ptr)</td></tr>
<tr class="memdesc:a26dfe4dd3ff57daab5a36a037f835c4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most efficient yet safe values, for <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">transport::struc::Msg_out</a> (out-messages) compatible with <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> upgraded-from <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> channels opened via this <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> type.  <a href="classipc_1_1session_1_1Session__mv.html#a26dfe4dd3ff57daab5a36a037f835c4e">More...</a><br /></td></tr>
<tr class="separator:a26dfe4dd3ff57daab5a36a037f835c4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a411feb974e2b7ed48b08ac50bcdf43b3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html">transport::struc::Heap_reader::Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a411feb974e2b7ed48b08ac50bcdf43b3">heap_reader_config</a> (flow::log::Logger *logger_ptr)</td></tr>
<tr class="memdesc:a411feb974e2b7ed48b08ac50bcdf43b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserializing counterpart to <code>static</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a>.  <a href="classipc_1_1session_1_1Session__mv.html#a411feb974e2b7ed48b08ac50bcdf43b3">More...</a><br /></td></tr>
<tr class="separator:a411feb974e2b7ed48b08ac50bcdf43b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a74af091662cb7c32e0f1c60baac3613b"><td class="memItemLeft" align="right" valign="top">static constexpr schema::ShmType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a74af091662cb7c32e0f1c60baac3613b">S_SHM_TYPE</a> = Impl::S_SHM_TYPE</td></tr>
<tr class="memdesc:a74af091662cb7c32e0f1c60baac3613b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a74af091662cb7c32e0f1c60baac3613b">More...</a><br /></td></tr>
<tr class="separator:a74af091662cb7c32e0f1c60baac3613b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62945e465ae734523036215750c90ba4"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a62945e465ae734523036215750c90ba4">S_SHM_ENABLED</a> = Impl::S_SHM_ENABLED</td></tr>
<tr class="memdesc:a62945e465ae734523036215750c90ba4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract.  <a href="classipc_1_1session_1_1Session__mv.html#a62945e465ae734523036215750c90ba4">More...</a><br /></td></tr>
<tr class="separator:a62945e465ae734523036215750c90ba4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a87002dccab497da76bb286d5a4bf95"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a6a87002dccab497da76bb286d5a4bf95">S_MQS_ENABLED</a> = Impl::S_MQS_ENABLED</td></tr>
<tr class="memdesc:a6a87002dccab497da76bb286d5a4bf95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time-known constant indicating whether <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> shall use a blobs pipe over message queues (MQs).  <a href="classipc_1_1session_1_1Session__mv.html#a6a87002dccab497da76bb286d5a4bf95">More...</a><br /></td></tr>
<tr class="separator:a6a87002dccab497da76bb286d5a4bf95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addc597e6bf3555dc3788116c8cc179dd"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#addc597e6bf3555dc3788116c8cc179dd">S_SOCKET_STREAM_ENABLED</a> = Impl::S_SOCKET_STREAM_ENABLED</td></tr>
<tr class="memdesc:addc597e6bf3555dc3788116c8cc179dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time-known constant indicating whether <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> shall use socket stream for any type of pipe.  <a href="classipc_1_1session_1_1Session__mv.html#addc597e6bf3555dc3788116c8cc179dd">More...</a><br /></td></tr>
<tr class="separator:addc597e6bf3555dc3788116c8cc179dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-types" name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:af2c186e7b4be09bff30b42aa2482dd93"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93">Impl</a> = <a class="el" href="classSession__impl__t.html">Session_impl_t</a></td></tr>
<tr class="memdesc:af2c186e7b4be09bff30b42aa2482dd93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired.  <a href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93">More...</a><br /></td></tr>
<tr class="separator:af2c186e7b4be09bff30b42aa2482dd93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb47dfa0f5645cf2da7d62ac5862e8cc"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#acb47dfa0f5645cf2da7d62ac5862e8cc">Session_base_obj</a> = typename Impl::Session_base_obj</td></tr>
<tr class="memdesc:acb47dfa0f5645cf2da7d62ac5862e8cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93" title="Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired.">Impl</a>'s <a class="el" href="classipc_1_1session_1_1Session__base.html" title="Internal type containing data and types common to internal types Server_session_impl and Client_sessi...">Session_base</a> super-class.  <a href="classipc_1_1session_1_1Session__mv.html#acb47dfa0f5645cf2da7d62ac5862e8cc">More...</a><br /></td></tr>
<tr class="separator:acb47dfa0f5645cf2da7d62ac5862e8cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a457c661352bf3111ca4f707c15d51b3e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">Impl_ptr</a> = std::experimental::propagate_const&lt; boost::movelib::unique_ptr&lt; <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93">Impl</a> &gt; &gt;</td></tr>
<tr class="memdesc:a457c661352bf3111ca4f707c15d51b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for <code>const</code>-respecting wrapper around <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93" title="Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired.">Impl</a> for the pImpl idiom. See <a class="el" href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25" title="pImpl target; particularly for sub-classes that must add to the above public API.">impl()</a>.  <a href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">More...</a><br /></td></tr>
<tr class="separator:a457c661352bf3111ca4f707c15d51b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a7589e9e086afae1d8be969c8e6c1987d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classipc_1_1session_1_1Session__mv.html#acb47dfa0f5645cf2da7d62ac5862e8cc">Session_base_obj</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a7589e9e086afae1d8be969c8e6c1987d">base</a> () const</td></tr>
<tr class="memdesc:a7589e9e086afae1d8be969c8e6c1987d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides <code>const</code> access to <a class="el" href="classipc_1_1session_1_1Session__base.html" title="Internal type containing data and types common to internal types Server_session_impl and Client_sessi...">Session_base</a> super-object.  <a href="classipc_1_1session_1_1Session__mv.html#a7589e9e086afae1d8be969c8e6c1987d">More...</a><br /></td></tr>
<tr class="separator:a7589e9e086afae1d8be969c8e6c1987d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e646ae3649914384cb2e7f94aa7a25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">Impl_ptr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25">impl</a> ()</td></tr>
<tr class="memdesc:ae5e646ae3649914384cb2e7f94aa7a25"><td class="mdescLeft">&#160;</td><td class="mdescRight">pImpl target; particularly for sub-classes that must add to the above <code>public</code> API.  <a href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25">More...</a><br /></td></tr>
<tr class="separator:ae5e646ae3649914384cb2e7f94aa7a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a025cd4b449dbfc68008ac9379a07ca63"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">Impl_ptr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63">impl</a> () const</td></tr>
<tr class="memdesc:a025cd4b449dbfc68008ac9379a07ca63"><td class="mdescLeft">&#160;</td><td class="mdescRight">pImpl target; particularly for sub-classes that must add to the above <code>public</code> API.  <a href="classipc_1_1session_1_1Session__mv.html#a025cd4b449dbfc68008ac9379a07ca63">More...</a><br /></td></tr>
<tr class="separator:a025cd4b449dbfc68008ac9379a07ca63"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:ae1b726126c99bb55036f8c0c2ad6640f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">Impl_ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ae1b726126c99bb55036f8c0c2ad6640f">m_impl</a></td></tr>
<tr class="memdesc:ae1b726126c99bb55036f8c0c2ad6640f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The true implementation of this class. See also our class doc header.  <a href="classipc_1_1session_1_1Session__mv.html#ae1b726126c99bb55036f8c0c2ad6640f">More...</a><br /></td></tr>
<tr class="separator:ae1b726126c99bb55036f8c0c2ad6640f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a3db0af35c4944b80b0ee4119298ae548"><td class="memTemplParams" colspan="2"><a id="a3db0af35c4944b80b0ee4119298ae548" name="a3db0af35c4944b80b0ee4119298ae548"></a>
template&lt;typename Session_impl_t2 &gt; </td></tr>
<tr class="memitem:a3db0af35c4944b80b0ee4119298ae548"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>operator&lt;&lt;</b> (std::ostream &amp;os, const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; Session_impl_t2 &gt; &amp;val)</td></tr>
<tr class="memdesc:a3db0af35c4944b80b0ee4119298ae548"><td class="mdescLeft">&#160;</td><td class="mdescRight">Friend of <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a>. <br /></td></tr>
<tr class="separator:a3db0af35c4944b80b0ee4119298ae548"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="related" name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p >(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:a07c2d7a228f070e32bf4f1fbc64e1f6d"><td class="memTemplParams" colspan="2">template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </td></tr>
<tr class="memitem:a07c2d7a228f070e32bf4f1fbc64e1f6d"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a07c2d7a228f070e32bf4f1fbc64e1f6d">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; &amp;val)</td></tr>
<tr class="memdesc:a07c2d7a228f070e32bf4f1fbc64e1f6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code><a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a></code> to the given <code>ostream</code>.  <a href="classipc_1_1session_1_1Session__mv.html#a07c2d7a228f070e32bf4f1fbc64e1f6d">More...</a><br /></td></tr>
<tr class="separator:a07c2d7a228f070e32bf4f1fbc64e1f6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a>&gt;<br />
class ipc::session::Session_mv&lt; Session_impl_t &gt;</div><p >Implements the <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> concept when it is in PEER state. </p>
<p >It is, as of this writing, not to be instantiated by itself. Rather see <a class="el" href="classipc_1_1session_1_1Client__session__mv.html" title="Implements Session concept on the Client_app end: a Session_mv that first achieves PEER state by conn...">Client_session_mv</a> and <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> regarding what to actually instantiate and further context. As for the API in <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> itself, it is quite critical &ndash; but it only implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> concept, and therefore the doc headers for <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> members generally just send you to <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> doc headers. However the <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> doc headers are useful in enumerating specific <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89" title="Short-hand for flow::Error_code which is very common.">Error_code</a> values that may be emitted.</p>
<h3>Implementation</h3>
<p >See pImpl-lite notes in Blob_stream_mq_sender doc header. The exact same applies here.</p>
<p >Furthermore, sub-classes &ndash; <a class="el" href="classipc_1_1session_1_1Client__session__mv.html" title="Implements Session concept on the Client_app end: a Session_mv that first achieves PEER state by conn...">Client_session_mv</a>, <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> &ndash; continue the pImpl-lite pattern for their added public APIs on top of the ones from this super-class. For this reason <a class="el" href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25" title="pImpl target; particularly for sub-classes that must add to the above public API.">impl()</a> is <code>protected</code>. E.g., <a class="el" href="classipc_1_1session_1_1Client__session__mv.html" title="Implements Session concept on the Client_app end: a Session_mv that first achieves PEER state by conn...">Client_session_mv</a> doc header explains this hierarchy. In particular it explains what <code><a class="el" href="classSession__impl__t.html">Session_impl_t</a></code> is to be set to properly.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">This</td><td>is an implementation detail. See <a class="el" href="classipc_1_1session_1_1Client__session__mv.html" title="Implements Session concept on the Client_app end: a Session_mv that first achieves PEER state by conn...">Client_session_mv</a> and <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> doc headers for how to easily set this to the proper type in a given situation. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00504">504</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="ab92df09d894e6e1aaf3c2733da594fd2" name="ab92df09d894e6e1aaf3c2733da594fd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab92df09d894e6e1aaf3c2733da594fd2">&#9670;&nbsp;</a></span>Channel_obj</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Channel_obj =  typename Impl::Channel_obj</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a2f770785552536f3b929f293c44834d2" title="Each successful open_channel() and on-passive-open handler firing shall yield a concrete transport::C...">Session::Channel_obj</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00519">519</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="af87da439644b2afd73d6a13d97e7985f" name="af87da439644b2afd73d6a13d97e7985f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af87da439644b2afd73d6a13d97e7985f">&#9670;&nbsp;</a></span>Channels</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Channels =  typename Impl::Channels</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Container (<code>vector&lt;&gt;</code>) of <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a>. </p>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00522">522</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="af2c186e7b4be09bff30b42aa2482dd93" name="af2c186e7b4be09bff30b42aa2482dd93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2c186e7b4be09bff30b42aa2482dd93">&#9670;&nbsp;</a></span>Impl</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Impl =  <a class="el" href="classSession__impl__t.html">Session_impl_t</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired. </p>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00510">510</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a457c661352bf3111ca4f707c15d51b3e" name="a457c661352bf3111ca4f707c15d51b3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a457c661352bf3111ca4f707c15d51b3e">&#9670;&nbsp;</a></span>Impl_ptr</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Impl_ptr =  std::experimental::propagate_const&lt;boost::movelib::unique_ptr&lt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93">Impl</a>&gt; &gt;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Short-hand for <code>const</code>-respecting wrapper around <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93" title="Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired.">Impl</a> for the pImpl idiom. See <a class="el" href="classipc_1_1session_1_1Session__mv.html#ae5e646ae3649914384cb2e7f94aa7a25" title="pImpl target; particularly for sub-classes that must add to the above public API.">impl()</a>. </p>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00801">801</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="af10f452e602e4ea7389c6a77dd9a0f88" name="af10f452e602e4ea7389c6a77dd9a0f88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af10f452e602e4ea7389c6a77dd9a0f88">&#9670;&nbsp;</a></span>Mdt_builder</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Mdt_builder =  typename Impl::Mdt_builder</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#ac3f52804db8ecf1d0dc0d0bbdf97e062" title="Pointee of Mdt_builder_ptr.">Session::Mdt_builder</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00534">534</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a787253f02859ea6b99ce3eba92766431" name="a787253f02859ea6b99ce3eba92766431"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a787253f02859ea6b99ce3eba92766431">&#9670;&nbsp;</a></span>Mdt_builder_ptr</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Mdt_builder_ptr =  typename Impl::Mdt_builder_ptr</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a2ee877327fded2c2b1978453831c2b1b" title="Ref-counted handle to a capnp-generated Builder (and the payload it accesses) through which the user ...">Session::Mdt_builder_ptr</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00540">540</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="acccbc643f29f002075e66cd134da70bd" name="acccbc643f29f002075e66cd134da70bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acccbc643f29f002075e66cd134da70bd">&#9670;&nbsp;</a></span>Mdt_payload_obj</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Mdt_payload_obj =  typename Impl::Mdt_payload_obj</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#af572e522f2e85258bdfd091fd6e9a58b" title="Short-hand for Mdt_payload template arg.">Session::Mdt_payload_obj</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00528">528</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a2b1215fb0c9738b9fcfbb337d23c43df" name="a2b1215fb0c9738b9fcfbb337d23c43df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b1215fb0c9738b9fcfbb337d23c43df">&#9670;&nbsp;</a></span>Mdt_reader_ptr</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Mdt_reader_ptr =  typename Impl::Mdt_reader_ptr</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#ae197d051e06be6f132e193e9ba7ab6ae" title="Ref-counted handle to a capnp-generated Reader (and the payload it accesses) through which the user s...">Session::Mdt_reader_ptr</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00546">546</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="acb47dfa0f5645cf2da7d62ac5862e8cc" name="acb47dfa0f5645cf2da7d62ac5862e8cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb47dfa0f5645cf2da7d62ac5862e8cc">&#9670;&nbsp;</a></span>Session_base_obj</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Session_base_obj =  typename Impl::Session_base_obj</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Short-hand for <a class="el" href="classipc_1_1session_1_1Session__mv.html#af2c186e7b4be09bff30b42aa2482dd93" title="Short-hand for pImpl-lite impl type. This shall be the deepest impl sub-class desired.">Impl</a>'s <a class="el" href="classipc_1_1session_1_1Session__base.html" title="Internal type containing data and types common to internal types Server_session_impl and Client_sessi...">Session_base</a> super-class. </p>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00798">798</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="ac205819d4a3a066f31b5af311ff40a2a" name="ac205819d4a3a066f31b5af311ff40a2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac205819d4a3a066f31b5af311ff40a2a">&#9670;&nbsp;</a></span>Structured_channel</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<div class="memtemplate">
template&lt;typename Message_body &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Structured_channel =  typename <a class="el" href="namespaceipc_1_1transport_1_1struc.html#aca041b0efd4a9ae18e10088b2ee3c052">transport::struc::Channel_via_heap</a>&lt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a>, Message_body&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section note"><dt>Note</dt><dd>In particular <a class="el" href="classipc_1_1session_1_1Client__session__mv.html" title="Implements Session concept on the Client_app end: a Session_mv that first achieves PEER state by conn...">Client_session_mv</a> and <a class="el" href="classipc_1_1session_1_1Server__session__mv.html" title="Implements Session concept on the Server_app end: a Session that is emitted in almost-PEER state by l...">Server_session_mv</a> inherit this, and thus they show up there and thus in <a class="el" href="namespaceipc_1_1session.html#a77d8fda00e1e17f595a6a5d4c44375e7" title="A vanilla Client_session with no optional capabilities.">Client_session</a> and <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">Server_session</a>. However if you're using a SHM-enabled variant (e.g., <a class="el" href="namespaceipc_1_1session_1_1shm_1_1classic.html#ac6c443a72e0f22710c83bb1e8c229618" title="This is to session::Client_session what shm::classic::Server_session is to session::Server_session.">shm::classic::Client_session</a>, <a class="el" href="classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::classic::Server_session</a>), then this alias will be shadowed by a better definition that will make use of SHM for zero-copy transmission of structured messages. This super-class definition then becomes, in a sense, obsolete: It can be used, if you still want to use non-zero-copy heap-based serialization; but it is usually better to use, directly, the shadowing definition: e.g., <a class="el" href="classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html#a96f6b597be7cc29f9207df909a4816c4" title="Implements Session API per contract.">shm::classic::Session_mv::Structured_channel</a> (which will show up in <a class="el" href="classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::classic::Server_session</a> and <a class="el" href="namespaceipc_1_1session_1_1shm_1_1classic.html#ac6c443a72e0f22710c83bb1e8c229618" title="This is to session::Client_session what shm::classic::Server_session is to session::Server_session.">shm::classic::Client_session</a>).</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a29eaaa691a992e3a83662e00be7d7446" title="Convenience alias for the transport::struc::Channel concrete type to use if one desires (1) to upgrad...">Session::Structured_channel</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00563">563</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a9f6e9a57f6e6ab420d554a2c0eba7877" name="a9f6e9a57f6e6ab420d554a2c0eba7877"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f6e9a57f6e6ab420d554a2c0eba7877">&#9670;&nbsp;</a></span>Structured_msg_builder_config</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Structured_msg_builder_config =  typename Impl::Structured_msg_builder_config</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section note"><dt>Note</dt><dd>Same note as in <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> doc header.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a2612cefeace1ba12e649ba0e509aaab1" title="Convenience alias equal to Structured_channel&lt;M&gt;::Builder_config (regardless of M).">Session::Structured_msg_builder_config</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00573">573</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a335c3585402cc9430f8c909e8c7e55f4" name="a335c3585402cc9430f8c909e8c7e55f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a335c3585402cc9430f8c909e8c7e55f4">&#9670;&nbsp;</a></span>Structured_msg_reader_config</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Structured_msg_reader_config =  typename Impl::Structured_msg_builder_config</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section note"><dt>Note</dt><dd>Same note as in <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> doc header.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#ac23d047087984addf221f0baa0058616" title="Convenience alias equal to Structured_channel&lt;M&gt;::Reader_config (regardless of M).">Session::Structured_msg_reader_config</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00582">582</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af964cb260766684d46503b43d0faa777" name="af964cb260766684d46503b43d0faa777"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af964cb260766684d46503b43d0faa777">&#9670;&nbsp;</a></span>Session_mv() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Session_mv </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<p >Reminder: While not enforced, this ctor form is informally intended only for when one will move-from a PEER-state <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a>. In particular <a class="el" href="classipc_1_1session_1_1Session__server.html#a13887cd64912bb5f5675e2817ff8435f" title="Asynchronously awaits for an opposing Client_session to request session establishment and calls on_do...">Session_server::async_accept()</a> requires these move semantics; so a default-cted <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> would be typically passed to it by the user.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a08416c5a34aa4eb58db094e946b540e3" title="Default ctor: creates Session in NULL state (not operational).">Session::Session()</a>: implemented concept. </dd></dl>

</div>
</div>
<a id="ad1cffabdbc41809399b4bda9330f5367" name="ad1cffabdbc41809399b4bda9330f5367"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1cffabdbc41809399b4bda9330f5367">&#9670;&nbsp;</a></span>Session_mv() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::Session_mv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; &amp;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>See above.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> move ctor: implemented concept. </dd></dl>

</div>
</div>
<a id="a0b4f0cdde3221b0922e0b44cbb6011a2" name="a0b4f0cdde3221b0922e0b44cbb6011a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b4f0cdde3221b0922e0b44cbb6011a2">&#9670;&nbsp;</a></span>~Session_mv()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::~<a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a8cb20f446c2a4327a3a8143af137dbca" title="In NULL state, no-op; in PEER state: Ends the session while informing (if possible) the opposing peer...">Session::~Session()</a>: implemented concept. </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a7589e9e086afae1d8be969c8e6c1987d" name="a7589e9e086afae1d8be969c8e6c1987d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7589e9e086afae1d8be969c8e6c1987d">&#9670;&nbsp;</a></span>base()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#acb47dfa0f5645cf2da7d62ac5862e8cc">::Session_base_obj</a> &amp; <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::base</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides <code>const</code> access to <a class="el" href="classipc_1_1session_1_1Session__base.html" title="Internal type containing data and types common to internal types Server_session_impl and Client_sessi...">Session_base</a> super-object. </p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00944">944</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a23b43187319871c4974755175973008e" name="a23b43187319871c4974755175973008e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23b43187319871c4974755175973008e">&#9670;&nbsp;</a></span>get_log_component()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const flow::log::Component &amp; <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::get_log_component</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns log component. </p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00938">938</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a142df6d6db09962a1dc0f536bf4977f0" name="a142df6d6db09962a1dc0f536bf4977f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a142df6d6db09962a1dc0f536bf4977f0">&#9670;&nbsp;</a></span>get_logger()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">flow::log::Logger * <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::get_logger</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns logger (possibly null). </p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00932">932</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a107684fdd5d233549c6daac26a81a542" name="a107684fdd5d233549c6daac26a81a542"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a107684fdd5d233549c6daac26a81a542">&#9670;&nbsp;</a></span>heap_fixed_builder_config() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html">transport::struc::Heap_fixed_builder::Config</a> <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::heap_fixed_builder_config</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most efficient yet safe values, for <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">transport::struc::Msg_out</a> (out-messages) compatible with <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> upgraded-from <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> channels opened via <code>*this</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a>. </p>
<p >It is, simply, <code>heap_fixed_builder_config(L)</code>, where <code>L</code> is the Flow <code>Logger*</code> belonging to <code>*this</code> <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a>.</p>
<p >Informally, typically, this is useful if and only if you'd like to construct a <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">transport::struc::Msg_out</a>, and:</p><ul>
<li>you lack a struc::Channel object from which to issue struc::Channel::create_msg() or struc::Channel::struct_builder_config(), or if you have one, but the target out-message is intended for multiple channels, so you don't want to stylistically tie the out-message's creation to any particular one channel; and</li>
<li>you do have a <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> object from which to issue non-static <code>this-&gt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a></code>.</li>
</ul>
<h3>Usability in SHM-based <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> impls</h3>
<p >The note in the other overload's doc header applies equally.</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00912">912</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a26dfe4dd3ff57daab5a36a037f835c4e" name="a26dfe4dd3ff57daab5a36a037f835c4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26dfe4dd3ff57daab5a36a037f835c4e">&#9670;&nbsp;</a></span>heap_fixed_builder_config() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__fixed__builder_1_1Config.html">transport::struc::Heap_fixed_builder::Config</a> <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::heap_fixed_builder_config </td>
          <td>(</td>
          <td class="paramtype">flow::log::Logger *&#160;</td>
          <td class="paramname"><em>logger_ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most efficient yet safe values, for <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">transport::struc::Msg_out</a> (out-messages) compatible with <a class="el" href="classipc_1_1session_1_1Session__mv.html#ac205819d4a3a066f31b5af311ff40a2a" title="Implements Session API per contract.">Structured_channel</a> upgraded-from <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> channels opened via this <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> type. </p>
<p >Informally, typically, this is useful if and only if you'd like to construct a <a class="el" href="classipc_1_1transport_1_1struc_1_1Msg__out.html" title="A structured out-message suitable to be sent via struc::Channel::send() (et al).">transport::struc::Msg_out</a>, and:</p><ul>
<li>you lack a struc::Channel object from which to issue struc::Channel::create_msg() or struc::Channel::struct_builder_config(), or if you have one, but the target out-message is intended for multiple channels, so you don't want to stylistically tie the out-message's creation to any particular one channel; and</li>
<li>you lack a <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a> object from which to issue non-static <code>this-&gt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a></code>, or if you have one, but the target out-message intended for multiple sessions, so you don't want to stylistically tie the out-message's creation to any particular one <a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a>.</li>
</ul>
<p >Otherwise one would typically use <code>struc::Channel::create_msg()/struct_builder_config()</code> or a <code>this-&gt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a></code> respectively.</p>
<h3>Usability in SHM-based <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> impls</h3>
<p >Do note this method is available, via base class, in SHM-based <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> impls (e.g., <a class="el" href="classipc_1_1session_1_1shm_1_1classic_1_1Server__session.html" title="Identical to session::Server_session in every way, except that it makes available two SHM arenas,...">shm::classic::Server_session</a> and <a class="el" href="namespaceipc_1_1session_1_1shm_1_1classic.html#ac6c443a72e0f22710c83bb1e8c229618" title="This is to session::Client_session what shm::classic::Server_session is to session::Server_session.">shm::classic::Client_session</a>) &ndash; nothing forbids the use of heap-based messaging even in such a session. However it would typically be better for performance (and in many cases is the reason for using a SHM-based <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> impl in the first place) to use the non-heap-based counterparts to this method. E.g., see <a class="el" href="classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html#a85bb0b948b7b54c06557edd3d03d66bd" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena session_shm().">shm::classic::Session_mv::session_shm_builder_config()</a> and <a class="el" href="classipc_1_1session_1_1shm_1_1classic_1_1Session__mv.html#a0fbea0563835e852069cdaab506dd92c" title="Identical to session_shm_builder_config() but backed by SHM arena app_shm() instead of session_shm().">shm::classic::Session_mv::app_shm_builder_config()</a>; possibly <a class="el" href="classipc_1_1session_1_1shm_1_1classic_1_1Session__server.html#ad0dafea47293d23e079b6b5c5c6a9cef" title="Returns builder config suitable for capnp-serializing out-messages in SHM arena app_shm() for the sam...">shm::classic::Session_server::app_shm_builder_config()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">logger_ptr</td><td>Logger to pass to the returned <code>Config</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00905">905</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="ab3c69e3f8ccbd70d315bed86d697255d" name="ab3c69e3f8ccbd70d315bed86d697255d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3c69e3f8ccbd70d315bed86d697255d">&#9670;&nbsp;</a></span>heap_reader_config() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html">transport::struc::Heap_reader::Config</a> <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::heap_reader_config</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deserializing counterpart to non-<code>static</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a>. </p>
<p >It is mostly provided for consistency, as it simply returns <code>Heap_reader::Config(L)</code>, where <code>L</code> is the Flow <code>Logger*</code> belonging to <code>*this</code> <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00926">926</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a411feb974e2b7ed48b08ac50bcdf43b3" name="a411feb974e2b7ed48b08ac50bcdf43b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a411feb974e2b7ed48b08ac50bcdf43b3">&#9670;&nbsp;</a></span>heap_reader_config() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structipc_1_1transport_1_1struc_1_1Heap__reader_1_1Config.html">transport::struc::Heap_reader::Config</a> <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::heap_reader_config </td>
          <td>(</td>
          <td class="paramtype">flow::log::Logger *&#160;</td>
          <td class="paramname"><em>logger_ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Deserializing counterpart to <code>static</code> <a class="el" href="classipc_1_1session_1_1Session__mv.html#a107684fdd5d233549c6daac26a81a542" title="Utility that obtains a heap-based (non-zero-copy) Struct_builder::Config, constructed with the most e...">heap_fixed_builder_config()</a>. </p>
<p >It is mostly provided for consistency, as it simply returns <code>Heap_reader::Config(logger_ptr)</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">logger_ptr</td><td>Logger to pass to the returned <code>Config</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00919">919</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="ae5e646ae3649914384cb2e7f94aa7a25" name="ae5e646ae3649914384cb2e7f94aa7a25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5e646ae3649914384cb2e7f94aa7a25">&#9670;&nbsp;</a></span>impl() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">::Impl_ptr</a> &amp; <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::impl</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pImpl target; particularly for sub-classes that must add to the above <code>public</code> API. </p>
<dl class="section return"><dt>Returns</dt><dd>See above. May be null; namely if <code>*this</code> is as-if default-cted. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00849">849</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a025cd4b449dbfc68008ac9379a07ca63" name="a025cd4b449dbfc68008ac9379a07ca63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a025cd4b449dbfc68008ac9379a07ca63">&#9670;&nbsp;</a></span>impl() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">::Impl_ptr</a> &amp; <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::impl</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pImpl target; particularly for sub-classes that must add to the above <code>public</code> API. </p>
<dl class="section return"><dt>Returns</dt><dd>See above. May be null; namely if <code>*this</code> is as-if default-cted. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00855">855</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="aba79f245e6f726ac6aa573e45e0bfdf3" name="aba79f245e6f726ac6aa573e45e0bfdf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba79f245e6f726ac6aa573e45e0bfdf3">&#9670;&nbsp;</a></span>mdt_builder()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;<a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">::Mdt_builder_ptr</a> <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::mdt_builder</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section return"><dt>Returns</dt><dd>See above.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a420df732069ded1feef423adf7a30915" title="Returns a new metadata holder to be subsequently mutated by the user and then passed to open_channel(...">Session::mdt_builder()</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00885">885</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a6d8cdbb86140056a7e7d2931ea642b18" name="a6d8cdbb86140056a7e7d2931ea642b18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d8cdbb86140056a7e7d2931ea642b18">&#9670;&nbsp;</a></span>open_channel() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::open_channel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> *&#160;</td>
          <td class="paramname"><em>target_channel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classipc_1_1session_1_1Session__mv.html#a787253f02859ea6b99ce3eba92766431">Mdt_builder_ptr</a> &amp;&#160;</td>
          <td class="paramname"><em>mdt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *&#160;</td>
          <td class="paramname"><em>err_code</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<p >Reminder: Per concept requirements, <a class="el" href="classipc_1_1session_1_1Session__mv.html#a6d8cdbb86140056a7e7d2931ea642b18" title="Implements Session API per contract.">open_channel()</a> emitting an error (via standard Flow semantics) means that error is <em>not</em> session-hosing. Any session-hosing event is orthogonally emitted to on-error handler. Informally: in most cases even the (formally non-session-hosing) errors below indicate something seriously wrong is afoot. It would not be unreasonable to treat them as session-hosing (invoke dtor).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target_channel</td><td>See above. </td></tr>
    <tr><td class="paramname">mdt</td><td>See above. </td></tr>
    <tr><td class="paramname">err_code</td><td>See above. <a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89" title="Short-hand for flow::Error_code which is very common.">Error_code</a> generated: <a class="el" href="namespaceipc_1_1session_1_1error.html#a0708d4bec9ae853f4d7e3d7822fc8f2fa2c8c27c65ff6234220a84f96de8a1870" title="Session channel opening: User code chose to reject all passive-open requests.">error::Code::S_SESSION_OPEN_CHANNEL_REMOTE_PEER_REJECTED_PASSIVE_OPEN</a> (per concept), <a class="el" href="namespaceipc_1_1session_1_1error.html#a0708d4bec9ae853f4d7e3d7822fc8f2fa7d85b87223a9b277b8875c1f7971d6ad" title="Session channel opening: Other peer must reply quickly enough as-if non-blocking but did not do so in...">error::Code::S_SESSION_OPEN_CHANNEL_ACTIVE_TIMEOUT</a> (peer neither accepted nor rejected in non-blocking time frame), <a class="el" href="namespaceipc_1_1session_1_1error.html#a0708d4bec9ae853f4d7e3d7822fc8f2fa10d32cf1382fb003f09a6df2da408574" title="Session channel opening: Server peer is responsible for low-level resource acquisition but failed to ...">error::Code::S_SESSION_OPEN_CHANNEL_SERVER_CANNOT_PROCEED_RESOURCE_UNAVAILABLE</a> (opposing or local <a class="el" href="namespaceipc_1_1session.html#ab01d5bce0ab2f3435ca9dd88d27609dc" title="A vanilla Server_session with no optional capabilities.">Server_session</a> peer was unable to acquire resources &ndash; as of this writing MQ-related ones &ndash; required for opening channel). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#aab01aefa0243abf84c7cc36d3ab2d852" title="Synchronously active-opens a new channel which, on success, is moved-to *target_channel.">Session::open_channel()</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00891">891</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a84e80e24d7b16da0a9ecf83057acfd8e" name="a84e80e24d7b16da0a9ecf83057acfd8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84e80e24d7b16da0a9ecf83057acfd8e">&#9670;&nbsp;</a></span>open_channel() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::open_channel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2">Channel_obj</a> *&#160;</td>
          <td class="paramname"><em>target_channel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceipc.html#aa3192e586cc45d3e7c22463bf2760f89">Error_code</a> *&#160;</td>
          <td class="paramname"><em>err_code</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<p >See other overload for brief discussion relevant here also.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target_channel</td><td>See above. </td></tr>
    <tr><td class="paramname">err_code</td><td>See above. See also other overload. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#aab01aefa0243abf84c7cc36d3ab2d852" title="Synchronously active-opens a new channel which, on success, is moved-to *target_channel.">Session::open_channel()</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00898">898</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="ac000e14183b5dcb523ff0eaaf030968c" name="ac000e14183b5dcb523ff0eaaf030968c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac000e14183b5dcb523ff0eaaf030968c">&#9670;&nbsp;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; &amp; <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; &amp;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>See above. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> move assignment: implemented concept. </dd></dl>

</div>
</div>
<a id="a749f1f679f858d2dce8562cdddc60195" name="a749f1f679f858d2dce8562cdddc60195"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a749f1f679f858d2dce8562cdddc60195">&#9670;&nbsp;</a></span>session_token()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespaceipc_1_1session.html#ade2b302f1a3623e8adc9694568d94d2c">Session_token</a> &amp; <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::session_token</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section return"><dt>Returns</dt><dd>See above.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#abc6ce8839621c1e19db80ccd4f2e2589" title="In PEER state: Returns the (non-nil) logged-in session token to be used for any struc::Channels one m...">Session::session_token()</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00879">879</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

<p class="reference">References <a class="el" href="ipc__transport__structured_2src_2ipc_2transport_2struc_2channel_8cpp_source.html#l00035">ipc::transport::struc::NULL_SESSION_TOKEN</a>.</p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a07c2d7a228f070e32bf4f1fbc64e1f6d" name="a07c2d7a228f070e32bf4f1fbc64e1f6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07c2d7a228f070e32bf4f1fbc64e1f6d">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classipc_1_1session_1_1Session__mv.html">Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Prints string representation of the given <code><a class="el" href="classipc_1_1session_1_1Session__mv.html" title="Implements the Session concept when it is in PEER state.">Session_mv</a></code> to the given <code>ostream</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>Stream to which to write. </td></tr>
    <tr><td class="paramname">val</td><td>Object to serialize. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>os</code>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00951">951</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ae1b726126c99bb55036f8c0c2ad6640f" name="ae1b726126c99bb55036f8c0c2ad6640f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1b726126c99bb55036f8c0c2ad6640f">&#9670;&nbsp;</a></span>m_impl</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classipc_1_1session_1_1Session__mv.html#a457c661352bf3111ca4f707c15d51b3e">Impl_ptr</a> <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::m_impl</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The true implementation of this class. See also our class doc header. </p>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00834">834</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a6a87002dccab497da76bb286d5a4bf95" name="a6a87002dccab497da76bb286d5a4bf95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a87002dccab497da76bb286d5a4bf95">&#9670;&nbsp;</a></span>S_MQS_ENABLED</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::S_MQS_ENABLED = Impl::S_MQS_ENABLED</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compile-time-known constant indicating whether <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> shall use a blobs pipe over message queues (MQs). </p>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00599">599</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a62945e465ae734523036215750c90ba4" name="a62945e465ae734523036215750c90ba4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62945e465ae734523036215750c90ba4">&#9670;&nbsp;</a></span>S_SHM_ENABLED</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::S_SHM_ENABLED = Impl::S_SHM_ENABLED</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a7f28ff5d2fc6e9830877979fafe48cf7" title="Specifies whether this Session concept implementation provides support for zero-copy via SHM plus dir...">Session::S_SHM_ENABLED</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00596">596</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="a74af091662cb7c32e0f1c60baac3613b" name="a74af091662cb7c32e0f1c60baac3613b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74af091662cb7c32e0f1c60baac3613b">&#9670;&nbsp;</a></span>S_SHM_TYPE</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr schema::ShmType <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::S_SHM_TYPE = Impl::S_SHM_TYPE</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classipc_1_1session_1_1Session.html" title="A documentation-only concept defining the local side of an IPC conversation (session) with another en...">Session</a> API per contract. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classipc_1_1session_1_1Session.html#a62a1a415a92bf6e0b4d83987394ae78b" title="Specifies the SHM-provider for which this Session concept implementation provides support; or NONE if...">Session::S_SHM_TYPE</a>: implemented concept. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00590">590</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<a id="addc597e6bf3555dc3788116c8cc179dd" name="addc597e6bf3555dc3788116c8cc179dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addc597e6bf3555dc3788116c8cc179dd">&#9670;&nbsp;</a></span>S_SOCKET_STREAM_ENABLED</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool <a class="el" href="classipc_1_1session_1_1Session__mv.html">ipc::session::Session_mv</a>&lt; <a class="el" href="classSession__impl__t.html">Session_impl_t</a> &gt;::S_SOCKET_STREAM_ENABLED = Impl::S_SOCKET_STREAM_ENABLED</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compile-time-known constant indicating whether <a class="el" href="classipc_1_1session_1_1Session__mv.html#ab92df09d894e6e1aaf3c2733da594fd2" title="Implements Session API per contract.">Channel_obj</a> shall use socket stream for any type of pipe. </p>
<p >If <a class="el" href="classipc_1_1session_1_1Session__mv.html#a6a87002dccab497da76bb286d5a4bf95" title="Compile-time-known constant indicating whether Channel_obj shall use a blobs pipe over message queues...">S_MQS_ENABLED</a>, then a socket stream is still needed if and only if user wants to transmit native handles. If <a class="el" href="classipc_1_1session_1_1Session__mv.html#a6a87002dccab497da76bb286d5a4bf95" title="Compile-time-known constant indicating whether Channel_obj shall use a blobs pipe over message queues...">S_MQS_ENABLED</a> is <code>false</code>, then a socket stream is the only transport available as of this writing and hence also enabled. </p>

<p class="definition">Definition at line <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html#l00607">607</a> of file <a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>session/<a class="el" href="ipc__session_2src_2ipc_2session_2session_8hpp_source.html">session.hpp</a></li>
<li>session/<a class="el" href="session__fwd_8hpp_source.html">session_fwd.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 11 2025 20:02:26 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
